// 1. 入口函数
// 2. 根组件 materialApp
// 3. 页面架子 Scaffold

import 'package:flutter/material.dart';

void main() {
  runApp(
    const MaterialApp(
      // 1. 使用无状态组件
      // home: Scaffold(
      //   appBar: AppBar(
      //     title: const Text('页面架子'),
      //     backgroundColor: Colors.red,
      //   ),
      //   body: MyInfo(
      //     name: 'jack',
      //     age: 18,
      //   ),
      // ),
      // 2. 使用有状态组件
      home: MyCounter(),
    ),
  );
}

// fstless 生成
// 1. 无状态组件
// 1.1 extends StatelessWidget
// 1.2 有构造函数和build函数
// ignore: must_be_immutable
class MyInfo extends StatelessWidget {
  MyInfo({super.key, required this.name, required this.age});

  String name;
  int age;

  @override
  Widget build(BuildContext context) {
    return Center(
      child: Text('$name今年$age岁'),
    );
  }
}

// 2. 有状态组件
class MyCounter extends StatefulWidget {
  const MyCounter({super.key});

  @override
  _MyCounterState createState() => _MyCounterState();
}

class _MyCounterState extends State<MyCounter> {
  // 状态
  int count = 0;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('计数器'),
        backgroundColor: Colors.pink,
      ),
      body: Center(
        child: Text(count.toString()),
      ),
      floatingActionButton: FloatingActionButton(
        // 点击
        onPressed: () {
          // 更改状态 setState
          setState(() {
            count++;
          });
        },
        child: const Icon(Icons.add),
      ),
    );
  }
}
